Preparar los datos para exportar o importar de forma masiva

Actualizado: 15 de septiembre de 2007

En esta sección se explican las consideraciones implicadas en el planeamiento de operaciones de exportación masiva y los requisitos para operaciones de importación masiva.

[!NOTA] Si no está seguro de cómo dar formato a un archivo de datos para la importación masiva, puede usar la utilidad bcp para exportar los datos de la tabla a un archivo de datos. El formato de cada campo de datos de este archivo muestra el formato requerido para la importación masiva de datos en la columna correspondiente de la tabla. Use el mismo formato de los datos para los campos del archivo de datos.

Consideraciones sobre los archivos de datos para la exportación masiva

Antes de realizar una operación de exportación masiva mediante el comando bcp, tenga en cuenta lo siguiente:

  • Cuando se exportan los datos a un archivo, el comando bcp crea el archivo de datos automáticamente usando el nombre del archivo especificado. Si ese nombre de archivo ya se está usando, los datos que se están copiando masivamente en el archivo de datos sobrescriben el contenido existente del archivo.
  • La exportación masiva de una tabla o una vista en un archivo de datos requiere el permiso SELECT en la tabla o en la vista que está copiando de forma masiva.
  • Microsoft SQL Server puede usar exploraciones paralelas para recuperar datos. Por tanto, no se garantiza que las filas de la tabla que se está exportando masivamente desde una instancia de SQL Server estén en un orden específico en el archivo de datos. Para asegurarse de que las filas de la tabla exportada masivamente aparezcan en un determinado orden en el archivo de datos, use la opción queryout para exportar masivamente desde una consulta y especifique una cláusula ORDER BY. Para obtener más información, vea Exportar datos de una consulta a un archivo de datos.

Requisitos de formato de los archivos de datos para la importación masiva

Para importar datos desde un archivo de datos, el archivo debe cumplir los siguientes requisitos básicos:

  • Los datos deben tener un formato de fila y columna.

[!NOTA] No es necesario que la estructura del archivo de datos sea idéntica a la estructura de la tabla de SQL Server, ya que las columnas se pueden omitir o se puede cambiar el orden de las columnas durante el proceso de importación masiva.

  • El contenido del archivo de datos debe tener un formato admitido, como un formato de caracteres o nativo.

  • Los datos pueden estar en formato de caracteres o binario nativo, incluido Unicode.

  • Para importar datos mediante un comando bcp, una instrucción BULK INSERT o una instrucción INSERT ... SELECT * FROM OPENROWSET(BULK...), la tabla de destino ya debe existir.

  • Cada campo del archivo de datos debe ser compatible con la columna correspondiente de la tabla de destino. Por ejemplo, un campo int no puede cargarse en una columna datetime. Para obtener más información, vea Usar los formatos nativo, de caracteres o Unicode y Especificar formatos de datos por razones de compatibilidad mediante bcp.

    [!NOTA] Para especificar un subconjunto de filas para importarlas desde un archivo de datos, en lugar del archivo completo, puede usar un comando bcp con el modificador -F first_row y/o el modificador -L last_row. Para obtener más información, vea bcp (utilidad).

  • Para importar datos de archivos de datos que tienen campos de longitud fija o ancho fijo, debe usar un archivo de formato. Para obtener más información, vea Archivos de formato XML de ejemplo.

  • En algunos casos, se puede utilizar un archivo de valores delimitados por comas (CSV) como un archivo de datos para una importación masiva de datos a SQL Server. Observe que el terminador de campo de un archivo CSV no tiene que ser obligatoriamente una coma. Para permitir el uso como un archivo de datos para la importación masiva, un archivo CSV debe cumplir las restricciones siguientes:

    • Los campos de datos nunca contienen el terminador de campo.
    • Ninguno o todos los valores en un campo de datos están entre comillas ("").
      Para importar los datos desde un archivo de Microsoft FoxPro o una tabla de Visual FoxPro (.dbf) o un archivo de hoja de cálculo de Microsoft Excel (.xls), convierta los datos a un archivo CSV, que normalmente tendrá .csv como extensión de archivo. A continuación, podrá usar el archivo CSV como un archivo de datos en una operación de importación masiva de SQL Server.

Además, la importación masiva de datos desde un archivo de datos a una tabla requiere lo siguiente:

  • Los usuarios deben tener los permisos INSERT y SELECT para la tabla. Los usuarios también deben tener el permiso ALTER TABLE cuando utilicen opciones que requieren operaciones de lenguaje de definición de datos (DDL), como deshabilitar restricciones.
  • Al importar masivamente datos mediante BULK INSERT o INSERT ... SELECT * FROM OPENROWSET(BULK...), es necesario tener acceso al archivo de datos para opciones de lectura mediante el perfil de seguridad del proceso de SQL Server (si el usuario inicia sesión con el inicio de sesión de SQL Server proporcionado) o con el inicio de sesión de Microsoft que se utiliza con seguridad delegada. Adicionalmente, el usuario debe tener el permiso ADMINISTER BULK OPERATIONS para leer el archivo.

[!NOTA] La importación masiva en una vista con particiones no está permitida y los intentos de importar datos masivamente en una vista con particiones generarán un error.

Vea también

Conceptos

Usar el formato de caracteres para importar o exportar datos
Usar el formato nativo para importar o exportar datos
Descripción de los archivos de formato XML

Otros recursos

bcp (utilidad)
BULK INSERT (Transact-SQL)
Tipos de datos (Transact-SQL)
ExportData Method
ImportData Method

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

15 de septiembre de 2007

Contenido modificado:
  • Se amplió la explicación de preparar un archivo CSV para la importación masiva.

17 de julio de 2006

Contenido nuevo:
  • Se agregó una nota a la introducción.
  • Se agregó un requisito sobre la importación de campos de longitud fija o ancho fijo.

14 de abril de 2006

Contenido nuevo:
  • Se agregó información acerca del formato del archivo de datos al importar datos desde fuera de SQL Server.